<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class BaseModel extends Model
{
    // 使用软删除
    use SoftDeletes;

    // 会自动拼接 table_pre。
    // 但是这里需要设置这个成员变量，因为默认会使用复数的表名：tb_addresses。
    // protected $table = 'address';

    const CREATED_AT = 'create_time';
    const UPDATED_AT = 'update_time';
    // 修改软删除的字段（默认 vendor\laravel\framework\src\Illuminate\Database\Eloquent\SoftDeletes.php deleted_at）
    const DELETED_AT = 'delete_time';

    /**
     * 将表单数据传递给模型实例
     * @param  \Illuminate\Http\Request $request  请求对象
     * @param  Array $mappings 模型实例属性与表单数据的映射
     * @return void
     */
    public function assignAttributes($request, $mappings)
    {
        foreach ($mappings as $modelAttr => $inputName) {
            $this[$modelAttr] = $request[$inputName];
        }
    }
}
